Apparatus and methods for driftless attitude determination and reliable localization of vehicles

ABSTRACT

In order to determine positional information, about a mobile robot, Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data are obtained by at least two GNSS receivers mounted on the mobile robot. Estimates of the covariance matrices of the measurement data are computed. The RTK GNSS measurement data are combined according to the covariance matrices to obtain enhanced positional information. The results may be fused with data from an IMU to obtain driftless attitude and/or localization information.

FIELD OF THE INVENTION

This invention relates to the field of robotics, and more particularly to the driftless attitude determination and reliable localization of vehicles, such as mobile robots, waking robots, or humanoid robots.

BACKGROUND OF THE INVENTION

Both position and attitude determination of a mobile robot are necessary for navigation, guidance and steering control of the robot. Dead-reckoning using vehicle kinematic model and incremental measurement of wheel encoders are the common techniques to determine the position and orientation of mobile robots for indoor applications. However, the application of this technique for localization of outdoor robots is limited, particularly when the robot has to traverse an uneven terrain or loose soils. This is because wheel slippage and wheel imperfection cause quick accumulation of the position and attitude errors.

The problem with inertial systems is that they require additional information about absolute position and orientation to overcome long-term drift. An attitude estimation system based on utilization of multiple inertial measurements of a mobile robots is known. Only pitch and roll angles may be estimated in this method by using gravity components deduced from measurements of two accelerometer, but the yaw angle is not detectable. An integrated inertial platform consisting of three rate gyros, a triaxial accelerometer and two tilt sensors is known to minimize long-term drift. Other research focuses on using vision system as the absolute sensing mechanism required to update the prediction position obtained by inertial measurements.

Attitude determination GPS (ADGPS) using a multi-GPS antenna technology, in which the receiver gives not only the position but also the velocity data, are used for airborne applications as well as marine vessels and ships. Integration of such a GPS system and Inertial Navigation System (INS) is straightforward because attitude measurements from the two systems is directly available. ADGPS however need large antenna separation, e.g., 17 m, for offering competitive accuracy for azimuth and pitch determination of a ship. Multiple GPS antennas with separation distance of 11 m has been tried for attitude determination of aircraft. Methods for attitude estimation of UAVs based on position and velocity information obtained from a single GPS antenna have been disclosed. Since the velocity information is obtained from the Doppler shift measurement of the GPS carrier signals, these methods are suitable for fast moving vehicles such as UAVs, but not for mobile robots or humanoid robots.

Nowadays, differential Global Navigation Satellite Systems (GNSSs) to centimeter-level accuracy are commercially available making them attractive for localization, guidance and control of outdoor mobile robots. GNSS is the generic term for a satellite-based navigation system, such as the Global Positioning System (GPS), the Russian GLONASS, or European Galileo systems, and the term will be used in this specification to encompass all such systems. It will also be understood that in some environments, such as on mars, a satellite-based system may not be available. However, in such environments, it is possible to replace the satellites by transmitters placed at fixed locations that are functionally equivalent to satellites. Such transmitters are known as “pseudolites”, and it will be understood that the expression GNSS as used herein will also encompass such pseudolite-based systems. However, for convenience the invention will be described specifically in the context of the GPS system, which is the most widely used system today.

In conventional GPS, the pseudo ranges to satellites are measured by aligning the locally generated pseudorandom signal to the received signal. In Real Time Kinematic (RTK) GPS, and more specifically RTK GPS, an attempt is made to align the carriers rather than the signals modulated on to the carriers. Since the carriers are about 1000 times faster than the signals, considerable improvements in accuracy over conventional GPS can be achieved.

One method of improving the accuracy of localization systems using RTK GPS in the presence of GPS latency is to use a localization algorithm based on Kalman filtering that tries to fuse information coming from an inexpensive single GPS with inertial data and map-based data. A decentralized data fusion algorithm for simultaneous position estimation of a land vehicle and building the map of the environment by incorporating data from inertial sensor, GPS, laser scanner, the wheel and steering encoders is described in J. Vaganay, M. J. Aldon and A. Fournier, “Mobile robot attitude estimation by fusion of intertial data”, IEEE Int Conference on Robotics & Automation, Atlanta Georgia, May 1993, pp 277-282.

The use of vision systems has also been investigated. However, vision systems have proven to be sensitive to the lighting condition of the environment.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is provided a method of determining positional information about a vehicle, comprising: computing estimates of the covariance matrices of Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data obtained by at least two GNSS receivers mounted on the mobile vehicle; and fusing the RTK GNSS measurement data according to their corresponding covariance matrices to obtain enhanced positional information.

Embodiments of the invention provide a method for estimating vehicle attitude and position, in three dimensions, by optimally fusing two RTK GNSS measurements, accelerometric measurements of gravity from an accelerometer (or an inclinometer instrument) and angular rate measurements from a rate gyro. The relation between the GPS noises and the difference between the measured and actual antenna-to-antenna baselines is developed that allows to estimate the covariance matrix of the GNSS measurement noises.

First, the covariance matrices associated with the two RTK GNSS measurements are estimated based on the error on the magnitude of the antenna-to-antenna baseline measurement and the confidence of the GNSS receivers on the horizontal and vertical axes measurements. Then, the observation vector is constructed from the measurements of the onboard accelerometer and two RTK GNSSs. The measurement of the onboard rate gyro, the discrete-time observation as well as the estimated measurement covariance matrices are used by an Extended Kalman filter for driftless attitude determination of the mobile robot. Finally, the estimated attitude (in term of quaternion), RTK GPS measurements and the estimated covariance matrixes are used by another estimator to optimally localize the mobile robot by taking advantage of the redundancy in the GPS measurements plus the knowledge of the GNSS noise characteristics. This allows enhancing the accuracy and robustness of the GNSS-based localization of vehicles.

According to a second aspect of the invention there is provided an apparatus for determining positional information about a vehicle, comprising: at least two GNSS receivers for mounting on the vehicle robot and defining an antenna-to-antenna baseline therebetween; and a processor configured to compute estimates of the covariance matrices of Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data obtained by at least two GNSS receivers mounted on the vehicle, and to fuse the RTK GNSS measurement data according to their corresponding covariance matrices to obtain enhanced positional information.

A further aspect of the invention provides an apparatus for determining positional information about a vehicle, comprising at least two GNSS receivers for mounting on the vehicle and defining an antenna-to-antenna baseline therebetween; an inertial Measurement Unit (IMU) for obtaining data about the movement of the mobile robot; and a processor configured to and to fuse the RTK GNSS measurement data and the data from the IMU to obtain enhanced positional information.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described in more detail, by way of example only, with reference to the accompanying drawings, in which:

FIG. 1 is a block diagram of an apparatus in accordance with one embodiment of the invention;

FIG. 2 shows a mobile robot with two GPS antennas and an IMU mounted on the robot;

FIG. 3 shows a mobile robot with three GPS antennas and an IMU mounted on the robot for experimental purposes;

FIG. 4 shows the path taken by an experimental robot;

FIG. 5 shows the IMU outputs;

FIG. 6 shows the RTK GPS outputs;

FIG. 7 shows the confidence on the RTK GPS measurements;

FIG. 8 shows the estimated parameters;

FIG. 9 shows the vehicle attitude;

FIG. 10 shows the vehicle position;

FIG. 11 shows the attitude errors; and

FIG. 12 shows the position errors.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The apparatus shown in FIG. 1 comprises a vehicle 1 with wheels 2. A pair of RTK GPS antenna 3 coupled to respective GPS receivers 4, which may be differential receivers, are mounted a fixed distance apart on the vehicle 1 and separated by an antenna-to-antenna baseline 5. An accelerometer 6 and rate gyro 7 are mounted on the mobile robot 1. The embodiment will be described in connection with GPS, although as noted the invention applies more generally to any GNSS system, including systems using fixed pseudolites instead of satellites.

The mobile robot 1 also includes a processor 10, which may be a general-purpose computer, comprising a plurality of software/and or hardware modules, namely a covariance estimation module 11, a stochastic estimator module 12, an observation vector module 13, and an extended Kalman filter module 14, and an initializer 18.

The signals from the receivers 4 are subtracted from each other in subtraction module 15.

It will be understood that the various modules can be implemented in software, hardware or a combination of the two.

A base antenna 16 is also provided at a fixed location as is known in RTK GPS.

The method of estimating robot attitude and position, in three dimensions, involves optimally fusing two RTK GPS measurements, accelerometric measurements of gravity from an accelerometer (or an inclinometer) and angular rate measurements from a rate gyro in the Kalman filter 14 (KF). In addition to the pose, the KF 14 also estimates the gyro bias.

RTK GPS devices notoriously suffer from signal robustness issue as their signal can be easily disturbed by many factors such as satellite geometry, atmospheric condition and shadow. To deal with the uncertain GPS noise problem, the covariance matrix of the GPS noises is estimated in real-time so that the KF filter 14 is continually “tuned” as well as possible.

Kinematics

FIG. 2 schematically illustrates a vehicle 1 as a rigid body to which multiple differential GPS-antennas 3 and an IMU device are attached. Coordinate frame {A} is an inertial frame while {B} is a vehicle-fixed (body frame) coordinate system. The origin of frame {A} coincides with that of the base antenna of the differential GPS system, i.e., the GPS measurements are expressed in this frame. On the other hand, the origin of {B} coincides with the IMU center and their axes are parallel, i.e., the IMU measurements are expressed in {B} . The orientation of {B} with respect to {A} is represented by the unit quaternion q=[q_(v) ^(T) g₀]^(T), where subscripts v and o denote the vector and scalar parts of the quaternion, respectively. The rotation matrix A representing the rotation of frame {B} with respect to frame {A} is related to the corresponding quaternion q by

A(q)=(2q _(o) ²−1)1₃+2q_(o)[q_(v)×]+2q_(v)q_(v) ^(T),   (1)

where [.×] denotes the matrix form of the cross-product. Consider quaternions q₁, q₂, and q₃. Then, A(q₃)=A(q₁)A(q₁) and q₃=q₂

q₁ are equivalent, where

denotes the quaternion-product and the operators [q

] is defined, analogous to the cross-product matrix as

[q⊗] = Υ − diag([q_(v)×], 0) ${{where}\mspace{14mu} \mathrm{\Upsilon}} = \begin{bmatrix} q_{0} & q_{v} \\ {- q_{v}^{T}} & q_{0} \end{bmatrix}$

The conjugate q* of a quaternion is defined such that q*

q=q

q*=[0 0 0 1]^(T).

Now, assume that vector r represents the location of the origin of frame {B} that is expressed in coordinate frame {A}, and p_(i) is the output of the ith GPS measurement. Apparently, from FIG. 2, we have

p _(i) =r+A(q)e _(i) +v _(p) _(i) ∀i=1,2   (2)

where constant vectors e_(i)s are the locations of the GPS antennas in the vehicle-fixed frame and v_(p) _(i) s represent the GPS measurement noises, which are assumed random walk noises with covariance E[v_(p) _(i) v_(p) _(i) ^(T)=R_(p) _(i) .

The IMU 20 is equipped with an accelerometer which can be used for accelerometric measurements of gravity. In general, accelerometer output contain components of the acceleration of gravity and the inertial acceleration. In mobile robots, the level of inertial acceleration is negligible compared to the acceleration of gravity; typically maximum inertial acceleration is about 0.02 g. Therefore, despite the fact that estimation of the inertial acceleration of the robot can be obtained from the GPS data, it is sufficient to model the inertial acceleration as a measurement noise in the KF. Let assume that a be the accelerometer output. Then, the acceleration equation can be written as

$\begin{matrix} {{\frac{a}{a} = {{A^{T}k} + v_{a}}},} & (3) \end{matrix}$

where ∥•∥ denotes the Euclidean norm, and unit vector k is defined to be aligned with the gravity vector in frame {A}, while v_(a) captures the accelerometer noise and inertial acceleration all together. We treat v_(a) as a random walk noise with covariance E[v_(a)v_(a) ^(T)]=σ_(a) ²1₃.

Observation Equations

The objective of the extended Kalman filter (EKF) is to determine the vehicle attitude and position by fusing the IMU and GPS measurements.

In principle, the attitude of a rigid body can be determined from two non-collinear position vectors each of which expressed each in two coordinate systems. Equation (3) gives the gravity vector in both frames, while the baseline vector Δp≅p₁−p₂ is the rotated version of the vector from one antenna to the other, i.e., e₁−e₂. Therefore, equations (2) and (3) suffice to obtain the attitude q and the position r. However, this will lead to an inaccurate estimate because of low signal-to-noise ratio of the Δp measurement. Denoting vectors Δe=e₁−e₂ and v_(p)=v_(p) ₂ −v_(p) ₁ , one can in from (2) that

$\begin{matrix} {{{{{\Delta \; e}} = {{{{\Delta \; p} + v_{p}}} \approx {{{\Delta \; p}} + {\Delta \; {\overset{\sim}{p}}^{T}v_{p}}}}},{where}}{{\Delta \; \overset{\sim}{p}} = \frac{\Delta \; p}{{\Delta \; p}}}} & (5) \end{matrix}$

and the RHS of (5) is obtained by the first-order approximation of the norm of summation of two vectors. Antenna-to-antenna baseline ∥Δe∥ is approximately 1 m, whereas the GPS error isabout ±5 cm. This means that the error in measurement of orientation of vector Δp is about 10%, which is far from desired accuracy. The two GPS observations in conjunction with the measurements of the acceleration gravity are used as external updates in an elaborate Kalman filter integrating a rate gyro data with the observation data.

In the described embodiment, the IMU signals are given at the rate of 20 Hz, whereas the GPS data can be acquired at the rate of 1 Hz. Therefore, an average of the IMU signal can be obtained between two consecutive GPS data acquisitions. This tends to decrease the IMU noise. Therefore, the discrete-time measurement of the acceleration can be obtained by averaging through integration of the IMU signals at that interval t_(k)−t_(Δ)<t≦t_(k), where t_(Δ) denotes the GPS sampling rate, i.e.,

$\begin{matrix} {{\overset{\_}{a}}_{k} = {\frac{1}{t_{\Delta}}{\int_{t_{k - 1}}^{t_{k}}{{a(\xi)}\ {\xi}}}}} & (5) \end{matrix}$

Therefore, the discrete-time measurement vector is defined as

$\begin{matrix} {z_{k} = \begin{bmatrix} {p_{1_{k}} - p_{2_{k}}} \\ {{\overset{\_}{a}}_{k}/{{\overset{\_}{a}}_{k}}} \end{bmatrix}} & (6) \end{matrix}$

In view of (2), (3) and (6), the observation vector as a function of the discrete-time variables q_(k) and k_(k) can be written as

$\begin{matrix} {h_{k} = \begin{bmatrix} {{A\left( q_{k} \right)}\left( {e_{1} - e_{2}} \right)} \\ {{A^{T}\left( q_{k} \right)}k_{k}} \end{bmatrix}} & (7) \end{matrix}$

Thus, the observation equation is

${z_{k} = {h_{k} + v_{k}}},{{{where}\mspace{14mu} v_{k}} = \begin{bmatrix} {v_{p\; 1_{k}} - v_{p\; 2_{k}}} \\ v_{a_{k}} \end{bmatrix}}$

is the overall additive measurement noise. Assuming that the noises of the two GPS receivers are not mutually corrected and that they are also not corrected with the IMU noise, the covariance matrix of the measurement noise takes the form

$\begin{matrix} {{R_{k} = {{E\left\lbrack {v_{k}v_{k}^{T}} \right\rbrack} = \begin{bmatrix} R_{p_{k}} & 0_{3} \\ 0_{3} & {\sigma_{a}^{2}1_{3}} \end{bmatrix}}},} & (8) \end{matrix}$

where

$R_{p_{k}} = {{R_{p_{1_{k}}} + {R_{p_{2_{k}}}\mspace{14mu} {and}\mspace{14mu} R_{p_{i_{k}}}}} = {E\begin{bmatrix} v_{p_{i_{k}}} & v_{p_{i_{k}}}^{T} \end{bmatrix}}}$

is the covariance matrix associated with the measurement nose of the ith GPS.

The discrete-time observation vector (7) is a nonlinear function of the quaternion. To linearize the observation vector, one also needs to derive the sensitivity of the nonlinear observation vector with respect to the system variables. To this end, consider small orientation perturbations

δq=q

q*.   (9)

around a nominal quaternion q. Now, by virtue of A(q)=A(δq

q), one can compute the observation vector (7) in terms of the perturbation δq. Using the first order approximation of nonlinear matrix function A^(T)(δq) from expression (1) by assuming a small rotation δq, i.e., ∥δq_(v)∥=1 and δq₀≈1, i.e.,

A(δq)≈1₃+2[δq_(v)×].

To take the decomposition rules of quaternion into account, the state vector to be estimated by the EKF is defined as

x=col(δq _(v) ,b)   (10)

where vector b is the corresponding gyro bias. Thus, the sensitivity matrix can be written as

$\begin{matrix} {{H = {\left( \frac{\partial h}{\partial x} \right) = \begin{bmatrix} {{- 2}{\overset{\_}{A}\left\lbrack {\left( {e_{1} - e_{2}} \right) \times} \right\rbrack}} & 0_{3} \\ {2{{\overset{\_}{A}}^{T}\left\lbrack {k \times} \right\rbrack}\overset{\_}{A}} & 0_{3} \end{bmatrix}}},} & (11) \end{matrix}$

where Ā=A( q). Thus, the linearized observation equation is

z_(k)≈Hx_(k) ±v _(k)   (12)

Covariance Estimation of the GPS Error

Efficient implementation of the KF requires the statistical characteristics of the measurement noise. The IMU noises are not usually characterized by time-invariant covariance. Therefore, σ_(a) is a constant parameter, which can be either derived from the sensor specification or empirically tuned. The GPS noise characteristics, however, are time-varying; the errors vary depending on many factors such as satellite geometry, atmospheric condition, multipath areas, and shadow.

The covariance of the GPS antenna-to-antenna measurements can be estimated from the difference between ∥Δp∥ and ∥Δe∥, which are both the antenna to antenna baselines expressed in two different frames. The magnitude of a vector is invariant under rotation transformation, i.e., ideally ∥Δp∥=∥Δe∥ if GPS data is noise-free. However, from the error equation (4), we can infer that

E[(∥Δp _(k)∥−∥Δe∥)² ]=Δ{tilde over (p)} _(k) ^(T) R _(p) _(k) Δ{tilde over (p)} _(k).   (13)

If the covariance matrix is assumed diagonal as

R_(p) _(k) =σ_(p) _(k) ²1₃,   (14)

then σ_(p) _(k) ²=E[(∥Δp∥−∥Δe∥)²]. Moreover, since GPS receivers estimate the position via the averaging process over the sampling interval, we can assume E[∥Δp∥]≈∥Δp_(k)∥. Therefore, knowing that Δe is a deterministic variable, we can find the covariance from

σ_(p) _(k) ²=(∥Δp_(k)∥−∥Δe∥)².

Most Real Time Kinematic (RTK) GPS receivers can estimate the confidence on their position measurements in real-time that allows us to characterize the covariance matrix more accurately. Typically, the positions of horizontal axes are measured with the same confidence, while the height measurements are given with less confidence. Therefore, for the i-th GPS, we can say C_(i)=diag(c_(h) _(i) ,c_(h) _(i) ,c_(v) _(i) ), where c_(h) _(i) and c_(v) _(i) are the confidence on the horizontal and vertical measurement data that are provided by the receiver in real-time. We assume that

R_(p) _(i) =ρC_(i) ² ∀i=1,2,   (15)

where the scaling factor ρ is yet to be found. Substituting (15) in the RHS of (13) yields

$\rho = {\frac{\left( {{{\Delta \; p_{k}}} - {{\Delta \; e}}} \right)^{2}}{\Delta {\overset{\sim}{\; p}}_{k}^{T}\left( {C_{1_{k}}^{2} + C_{2_{k}}^{2}} \right)\Delta \; {\overset{\sim}{p}}_{k}}.}$

Thus, the covariance matrix of the GPS noise can be computed from

$R_{{pi}_{k}} = {\frac{\left( {{{\Delta \; p_{k}}} - {{\Delta \; e}}} \right)^{2}}{\Delta {\overset{\sim}{\; p}}_{k}^{T}\left( {C_{1_{k}}^{2} + C_{2_{k}}^{2}} \right)\Delta \; {\overset{\sim}{p}}_{k}}{C_{i_{k}}^{2}.}}$

Attitude Estimation

The relation between the time derivative of the quaternion and the angular velocity ω can be readily expressed by

$\begin{matrix} {{\overset{.}{q} = {\frac{1}{2}{\underset{\_}{\omega} \otimes q}}}{{{where}\mspace{14mu} \underset{\_}{\omega}} = {\begin{bmatrix} \omega \\ 0 \end{bmatrix}.}}} & (16) \end{matrix}$

The angular rate obtained from the gyro measurement is

ω_(g) =ω−b−ε _(g)   (17)

where b is the corresponding bias vector; ε_(g) is the angular random walk noises with covariances E[ε_(g)ε_(g) ^(T)]=σ_(g) ²1₃. The gyro bias is traditionally modeled as

{dot over (b)}=ε_(b),   (18)

where ε_(b) is the random walk with covariances E[ε_(b)ε_(b) ^(T)]=σ_(b) ²1₃. Then, adopting a linearization technique one can linearize (16) about the nominal quaternion q and nominal velocity

ω=ω_(g) + b,

to obtain

$\begin{matrix} {{\frac{}{t}\delta \; q_{v}} = {{{- \overset{\_}{\omega}} \times \delta \; q_{v}} + {\frac{1}{2}\delta \; b} + {\frac{1}{2}{ɛ_{g}.}}}} & (19) \end{matrix}$

Since δq_(o) is not an independent variable and it has variations of only the second order, its time derivative can be ignored. Setting the dynamics equations (19) and (18) in the standard state space form, gives

$\begin{matrix} {{{\frac{}{t}x} = {{Fx} + {G\; ɛ}}},} & (20) \end{matrix}$

where ε=col(ε_(g),ε_(b)); and

${F = \begin{bmatrix} {- \left\lbrack {\overset{\_}{\omega} \times} \right\rbrack} & {\frac{1}{2}1_{3}} \\ 0_{3} & 0_{3} \end{bmatrix}},{G\begin{bmatrix} {\frac{1}{2}1_{3}} & 0_{3} \\ 0_{3} & 1_{3} \end{bmatrix}}$

Observabilty Analysis

A successful use of Kalman filtering requires that the system be observable. A linear time-invariant (LTI) systems is said to be globally observable if and only if its observability matrix is full rank. The observability matrix associated with linearized system (20) together with the observation model (11) is

O=[H ^(T)(HF)^(T) . . . (HF ⁵)^(T)]^(T).

The states of the system are assumed to be completely observable if and only if rank 0 =6 (21)

which is equivalent to O having 18 independent rows.

Although the described system is not time-invariant as F and H are defined on the nominal trajectory at a frozen instant in time, examination of the LTI observability measure can still provide a useful insight into the local observability of the system at that time. To this end, we construct the submatrices of the observability matrix O, i.e.,

$\begin{matrix} \left. {{HF} = {\left\lbrack {{- {{\overset{\_}{A}\left\lbrack {\Delta \; e \times} \right\rbrack}\left\lbrack {\overset{\_}{\omega}\; \times} \right\rbrack}}\frac{1}{2}{\overset{\_}{A}\left\lbrack {\Delta \; e\; \times} \right\rbrack}\overset{\_}{\omega} \times} \right\rbrack \frac{1}{2}{\overset{\_}{A}\left\lbrack {k^{\prime} \times} \right\rbrack}}} \right\rbrack & (22) \end{matrix}$

where k′=Ā^(T)k is the unit gravity vector expressed in the vehicle frame and we used the identity Ā^(T)[k×]Ā=[k′×] to obtain (22). The observability matrix can be reduced to the following block-triangular matrix by few elementary Matrix Row Operations (MRO)

$\begin{matrix} {{{O\overset{MRO}{\rightarrow}O^{\prime}} = \begin{bmatrix} M & 0_{3} \\  \times & M \end{bmatrix}},{where}} & (23) \\ {M = {{\left\lbrack {k^{\prime} \times} \right\rbrack \left\lbrack {\Delta \; e \times} \right\rbrack} - {\left\lbrack {\Delta \; e \times} \right\rbrack \left\lbrack {k^{\prime} \times} \right\rbrack}}} & (24) \end{matrix}$

and hence rank O=rank O′. It is clear from (23) that the full rankness of the block-triangular matrix rests on the invertibility of the square matrix M. In other words, if M is invertible, then the system is observable.

Proposition 1 If a line connecting the two GPS antennas is not collinear with the gravity vector, then system (12)-(20) is observable.

Proof: In a proof by contradiction, we show that M ∈ R^(3×3) must be a full-rank matrix. If M is not full-rank, then there must exist a non-zero vector η≠ 0_(3×1) such that

Mη=0_(3×1)   (25)

In view of definition (24) and the property of the vector product of three vectors {a, b, c},

a×(b×c)=(a·c)b−(a·b)c,

one can easily show that LHS of (25) is equivalent to

$\begin{matrix} \begin{matrix} {{M\; \eta} = {{k^{\prime} \times \left( {\Delta \; e \times \eta} \right)} - {\Delta \; e \times \left( {k^{\prime} \times \eta} \right)}}} \\ {{= {{{\left( {k^{\prime} \cdot \eta} \right)\Delta \; e} - {\left( {\Delta \; {e \cdot \eta}} \right)k^{\prime}}} \neq 0}},} \end{matrix} & (26) \end{matrix}$

in which, the inequality of (26) is inferred from the fact that vectors k′ and Δe are not parallel and hence they can not annihilate one other. Therefore, it is not possible for (25) to be true meaning that matrix M must be full rank.

Discrete Time Model

The equivalent discrete-time model of (20) is

x _(k+1)=Φ_(k) x _(k) +w _(k)   (27)

where Φ_(k)=Φ(t_(k)+t_(Δ),t_(k)) is the state transition matrix over time interval t_(Δ). In order to find a closed form solution for the state transition matrix, we need the nominal values. The nominal values of the relevant states at interval t_(k)<τ≦_(k)+t_(Δ) are obtained from the latest estimate update, i.e., q _(k)(τ)={circumflex over (q)}_(k), b _(k)(τ)={circumflex over (b)}_(k). Similar to (5), the nominal value of the angular velocity is obtained by averaging through integration of the IMU signals at that interval between two consecutive GPS data acquisition, i.e.,

$\begin{matrix} {{\overset{\_}{\omega}}_{k} = {{\hat{b}}_{k} + {\frac{1}{t_{\Delta}}{\int_{t_{k - 1}}^{t_{k}}{{\omega_{g}(\xi)}\ {{\xi}.}}}}}} & (28) \end{matrix}$

Therefore, the nominal angular velocity remains constant in the interval. Under these circumstances, the state transition matrix can be obtained in closed form for constant angular velocity or for varying angular velocity remains constant in direction. Let us define θ_(k)(τ)= ω _(k)τ and θ_(k)=∥θ_(k)∥. Then, the state transition matrix Φ_(k)(τ)=Φ(τ,t_(k)+τ) takes on the form:

$\begin{matrix} {{\Phi_{k}(\tau)} = \begin{bmatrix} {\Psi_{1_{k}}(\tau)} & {\frac{1}{2}{\Psi_{2_{k}}(\tau)}} \\ 0 & 1_{3} \end{bmatrix}} & (29) \end{matrix}$

where the elements of the above matrix are given as

$\begin{matrix} {{{\Psi_{1_{k}}\left( t_{\Delta} \right)} = {1_{3} - {\frac{\sin \; \theta_{k}}{\theta_{k}}\left\lbrack {\theta_{k} \times} \right\rbrack} + {\frac{1 - {\cos \; \theta_{k}}}{\theta_{k}}\left\lbrack {\theta_{k} \times} \right\rbrack}^{2}}}{{{\Psi_{2_{k}}\left( t_{\Delta} \right)} = {\left( {1_{3} + {\frac{{\cos \; \theta_{k}} - 1}{\theta_{k}^{2}}\left\lbrack {\theta_{k} \times} \right\rbrack} + {\frac{\theta_{k} - {\sin \; \theta_{k}}}{\theta_{k}^{3}}\left\lbrack {\theta_{k} \times} \right\rbrack}^{2}} \right)t_{\Delta}}},}} & (30) \end{matrix}$

Let Σ_(e)=blockdiag(σ_(g) ²1₃,σ_(b) ²1₃) be the continuous-time covariance matrix of the entire process noise. Then, the corresponding discrete-time covariance matrix is

$\begin{matrix} {{Q_{k} = {{E\left\lbrack {w_{k}w_{k}^{T}} \right\rbrack} = {\int_{t_{k}}^{t_{k} + t_{\Delta_{k}}}{{\Phi (t)}G\; \Sigma_{ɛ}G^{T}{\Phi^{T}(t)}{t}}}}},} & (31) \end{matrix}$

which has the following structure

$\begin{matrix} {Q_{k} = \begin{bmatrix} \Lambda_{1_{k}} & \Lambda_{2_{k}} \\  \times & {\sigma_{b}^{2}t_{\Delta}1_{3}} \end{bmatrix}} & (32) \end{matrix}$

For small angle θ_(k), where

${{\sin \; \theta_{k}} \approx {\theta_{k} - {\frac{1}{6}\theta_{k}^{3}\mspace{14mu} {and}\mspace{14mu} \cos \mspace{14mu} \theta_{k}}} \approx {1 - {\frac{1}{2}\theta_{k}^{2}}}},$

the elements of the state-transition matrix (30) can be effectively simplified. Then, upon integration of the substitution of the simplified state transition matrix into (31) we arrive at

$\Lambda_{1_{k}} = {{\left( {\frac{\sigma_{g}^{2}t_{\Delta}}{4} + \frac{\sigma_{b}^{2}t_{\Delta}^{3}}{12}} \right)1_{3}} + {\frac{\sigma_{b}^{2}t_{\Delta}^{3}}{240}\left\lbrack {\theta_{k} \times} \right\rbrack}^{2} + {\left( {\frac{\sigma_{g}^{2}t_{\Delta}}{80} + \frac{\sigma_{b}^{2}t_{\Delta}^{3}}{1008}} \right)\left\lbrack {\theta_{k} \times} \right\rbrack}^{4}}$ $\Lambda_{2_{k}} = {\sigma_{b}^{2}{{t_{\Delta}^{2}\left( {{\frac{1}{4}1_{3}} - {\frac{1}{12}\left\lbrack {\theta_{k} \times} \right\rbrack} + {\frac{1}{48}\left\lbrack {\theta_{k} \times} \right\rbrack}^{2}} \right)}.}}$

Estimator Design

The state transition matrix (29) is used only for covariance propagation, while the system states have to be propagated separately by solving their own differential equations. Let us compose the redundant state ^(a)x=col(q,b), which contains the full quaternion q and parameters b. Combining (16), (18), we then describe the state-space model of the system as

^(a) {dot over (x)}=f(^(a) x,ε)

The EKF-based observer for the associated noisy discrete system (27) is given in two steps: (i) estimate correction

K _(k) =P _(k) ⁻ H _(k) ^(T)(H _(k) P _(k) ⁻ H _(k) ^(T) ±R _(k))⁻¹   (33)

{circumflex over (x)} _(k) ={circumflex over (x)} _(k) ⁻ +K(z _(k) −h({circumflex over (χ)}_(k) ⁻))   (34)

P _(k)=(1₁₂ −K _(k) H _(k))P _(k) ⁻  (35)

and (ii) estimate propagation

^(a) {circumflex over (x)} _(k+1) ⁻=^(a) {circumflex over (x)} _(k)+∫_(t) _(k) ^(t) ^(k) ^(+t) ^(Δ) f(^(a) x(t),0)dt   (36)

P _(k+1) ⁻=Φ_(k) P _(k)Φ_(k) ^(T) +Q _(k)   (37)

The vector of discrete-time states, x_(k), which is to be estimated by the KF, contains only the variations δq_(v) _(k) not the quaternion q_(k). However, the quaternion can be obtained from the former variables if the value of the nominal quaternion q _(k) is given, that is

δ{circumflex over (q)}_(k) ⁻={circumflex over (q)}_(k) ⁻

q*_(k)   (38)

A natural choice for the nominal value of quaternion is its update estimate as q(t_(k−1))={circumflex over (q)}_(k−1). Since the nominal angular velocity ω _(k) is assumed constant at interval t_(k−1)≦t≦t_(k), then, in view of (16), the nominal quaternion evolves from its initial value q(t_(k−1)) to its final value q _(k)= q(t_(k)) according to:

$\begin{matrix} {{\overset{\_}{q}}_{k} = {^{\frac{1}{2}{\lbrack{{\underset{\_}{\theta}}_{k} \otimes}\rbrack}}{{\hat{q}}_{k - 1}.}}} & (39) \end{matrix}$

It can be shown that the above exponential matrix function has a closed-form expression so that the above equation can be written as

$\begin{matrix} {{\overset{\_}{q}}_{k} = {{\left( {{\cos \frac{\theta_{k}}{2}} + {\sin \frac{\theta_{k}}{2}}} \right){\hat{q}}_{k - 1}} + {\left( {{\frac{2}{\theta_{k}}\sin \frac{\theta_{k}}{2}} - {\frac{1}{2}\cos \frac{\theta_{k}}{2}}} \right){{\underset{\_}{\theta}}_{k} \otimes {\hat{q}}_{k - 1}}}}} & (40) \end{matrix}$

From (38), the KF step, i.e., (34), can be written in terms of the full quaternion, q_(k) instead of its variation δq_(v) _(k) , as

$\begin{matrix} {\begin{bmatrix} {\delta {\hat{\; q}}_{v_{k}}} \\ {\hat{\rho}}_{k} \end{bmatrix} = {\begin{bmatrix} {{vec}\left( {{\hat{q}}_{\overset{\_}{k}} \otimes {\overset{\_}{q}}_{k}^{*}} \right)} \\ {\hat{\rho}}_{\overset{\_}{k}} \end{bmatrix} + {K\left( {z_{k} - h_{k}} \right)}}} & (41) \end{matrix}$

where q _(k) is obtained from (40). Finally, assuming that ∥δ{circumflex over (q)}_(v) _(k) ∥<1, a valid unit quaternion can be constructed from

$\begin{matrix} {{\hat{q}}_{k} = {\begin{bmatrix} {\delta {\hat{q}}_{v_{k}}} \\ \sqrt{1 - {{\delta {\hat{q}}_{v_{k}}}}^{2}} \end{bmatrix} \otimes {\overset{\_}{q}\left( t_{k} \right)}}} & (42) \end{matrix}$

Substituting (40) into (42) gives

${\hat{q}}_{k} = {\begin{bmatrix} {\delta {\hat{q}}_{v_{k}}} \\ \sqrt{1 - {{\delta {\hat{q}}_{v_{k}}}}^{2}} \end{bmatrix} \otimes \left( {{\left( {{\cos \frac{\theta_{k}}{2}} + {\sin \frac{\theta_{k}}{2}}} \right){\hat{q}}_{k - 1}} + {\left( {{\frac{2}{\theta_{k}}\sin \frac{\theta_{k}}{2}} - {\frac{1}{2}\cos \frac{\theta_{k}}{2}}} \right){{\underset{\_}{\theta}}_{k} \otimes {\hat{q}}_{k - 1}}}} \right)}$   (Note  the  last  θ  in  the  above  equation  should  be  in  bold)

Initialization of the Kalman Filter

For the first iteration of the EKF, an adequate guess of the initial states is required. The best guess for the parameters at t=0 s is =0₃, while the initial orientation of the vehicle with respect to the inertial frame at t=0 s is not known beforehand. It is that presumed ∥δq_(v)∥≦1. If this condition is violated, the error quaternion will not be unit norm. To prevent this from happening, it is important to keep the initial error in quaternion estimate small as much as possible.

Mathematically, the rotation matrix can be computed from two non-collinear unit vectors k and Δ{tilde over (p)} and their rotated versions ã≅a/∥a∥ and Δ{tilde over (e)}. Similar to the methods for registration of 3-D laser scanning data, let us form the following matrices from the units vectors as

D _(a) =[k Δ{tilde over (p)} k×Δ{tilde over (p)}]  (43)

D _(b) =[ã Δ{tilde over (e)} ã×Δ{tilde over (e)}]  (44)

Then, in the absence of measurement noise, i.e., v≡0, the above matrices are related by

D_(a)=AD_(b)   (45)

Matrices D_(a) and D_(b) are non singular as long as k and Δ{tilde over (j)} are not collinear, i.e., the line connecting the GPS antennas is not parallel to the gravity vector. Then, under this circumstance, the rotation matrix can be obtained from

A=D _(a) D _(b) ⁻¹   (46)

Solution (46) yields a valid rotation matrix A so that A^(T)A=1₃ , only if there is no error in the column vectors of matrices (45). However, due to the IMU and GPS noises, a valid rotation matrix may not be obtained from solution (46). To correct this problem, one may observe that all singular values of any orthogonal matrix must be one. This means that the singular value decomposition of the RHS of (33) yields

D _(a) D _(b) ⁻¹ =UΣV ^(T),

where U and V are orthogonal matrices and matrix Σ=1₃+Δ_(Σ) is expected to be close to the identity matrix, i.e., ∥Δ_(Σ)∥

1. Therefore, by ignoring small matrix Δ_(Σ), a valid solution to the rotation matrix can be found as

Â=UV^(T),   (47)

which then can be used to obtain the equivalent quaternion at t=0 s.

Position Estimation

With the estimation of attitude in hand, one can use the two sets of position and orientation equations (4) to compute r. Despite an estimate of r can be obtained from one set of equations, a better estimation can be achieved by solving two equations together if the measurement noise characteristic is known.

Setting the two GPS equations (4) in the matrix form, we get

$\begin{matrix} {{y = {{{Lr} + {\underset{\underset{noise}{}}{n_{p} + n_{q}}\mspace{14mu} {where}\mspace{14mu} y}} = \begin{bmatrix} {p_{1} - {\hat{A}e_{1}}} \\ {p_{2} - {\hat{A}e_{2}}} \end{bmatrix}}},{L = \begin{bmatrix} 1_{3} \\ 1_{3} \end{bmatrix}},} & (48) \end{matrix}$

while GPS measurement errors and attitude estimation errors are respectively represented by vectors

${n_{p} = \begin{bmatrix} v_{p_{1}} \\ v_{p_{2}} \end{bmatrix}},{n_{q} = {{- 2}{\overset{\_}{A}\begin{bmatrix} \left\lbrack {e_{1} \times} \right\rbrack \\ \left\lbrack {e_{2} \times} \right\rbrack \end{bmatrix}}\delta {{\overset{\sim}{q}}_{v}.}}}$

Using the argument that mutual correlation between n_(p) and n_(q) is negligible, we can write the covariance matrix of the entire noise in (48) as:

$\begin{matrix} \begin{matrix} {R_{r} = {{E\left\lbrack {n_{p}n_{p}^{T}} \right\rbrack} + {E\left\lbrack {n_{q}n_{q}^{T}} \right\rbrack}}} \\ {= \begin{bmatrix} {R_{p_{1}} + {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} & {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}} \\ {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}} & {R_{p_{2}} + {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} \end{bmatrix}} \end{matrix} & (49) \end{matrix}$

where P_(q)=E[δ{tilde over (q)}_(v)δ{tilde over (q)}_(v) ^(T)] ∈ R^(3×3). Since the Kalman filer gives the covariance matrix of all estimated states including the quaternion, one can get P_(q) from the filter covariance matrix as

$P = {\begin{bmatrix} P_{q} & \times \\  \times & \times  \end{bmatrix} \in {R^{6 \times 6}.}}$

Then an optimal solution to (48) can be obtained by the weighted pseudo inverse where a suitable weighting matrix is the covariance matrix of the noise. That is

$\begin{matrix} {{\hat{r} = {\left( {L^{T}R_{r}^{- 1}L} \right)^{- 1}L^{T}R_{r}^{- 1}y}},\begin{bmatrix} {p_{1} - {\hat{A}e_{1}}} \\ {p_{2} - {\hat{A}e_{2}}} \end{bmatrix}} & (50) \end{matrix}$

Using (48) in (50) yields

{circumflex over (r)}=(L ^(T) R _(r) ⁻¹ L)⁻¹ L ^(T) R _(r) ⁻¹

If the orientation estimation error is sufficiently small, i.e., the second term in RHS of (49) is negligible, then (50) can be conveniently written as

{circumflex over (r)}=W ₁(p ₁ −Ae ₁)+W ₂(p ₂ −Ae ₂),

where the weighting matrices are defined as

W₁≅R_(p) ₂ (R_(p) ₁ +R_(p) ₂ )⁻¹   (52)

W₂≅R_(p) ₁ (R_(p) ₁ +R_(p) ₂ )⁻¹.   (53)

It is worth noting that W₁+W₂=1₃. This means that the estimator (51) proportionally puts more weight on that GPS measurement with the smallest covariance matrix in order to estimate the position.

Experimental Verification

The test vehicle was equipped with three RTK GPS antennas as shown in FIG. 3. Although only two GPSs are required by the adaptive KF, having three GPSs allowed measurement of the vehicle attitude purely from a kinematic relation. Despite its poor accuracy, the three-GPS attitude determination method does not introduce any attitude drift. Therefore, it was possible to investigate whether or not the pose estimation method based on fusing two GPSs and an IMU exhibits any drift.

Assume that p₃ and e₃ denote the third GPS measurement and the location of its antenna on the vehicle, respectively. Also, denote Δp′=p₁−p₃ and Δe′=e₁−e₃ and

N _(a) =[Δp Δp′ Δp×Δp′]

N _(b) =[Δe Δe′ Δe×Δe′]  (54)

where identity N_(a)=AN_(b) holds in the absence of GPS measurement noise. Therefore, in a development similar to (40) -(47), one can calculate the rotation matrix from the above matrices.

A rover equipped with three RTK GPS receivers along with satellite antennas and radio modems (model Promark3RTK from Magellan Navigation Inc.) in addition to an INIU device from Crossbow Technology, Inc. (model IMU300) was used for experiments. Experiments were conducted on the 30×60 m Mars Emulation Terrain (MET) of the Canadian Space Agency. The locations of the GPS antennas expressed in the vehicle-frame are shown in the following table. The additional GPS receiver was provided to permit estimation of the vehicle pose indpendently of the IMU measurements.

TABLE x(m) y(m) z(m) e₁ −0.452 0.604 −0.252 e₂ −0.452 −0.616 −0.224 e₃ −0.427 −0.003 −0.249

An operator sent a pre-scheduled sequence of primitive commands to the mobile robot-e.g., “move forward of a certain distance”, “rotate clockwise by 45°”, etc-so that the robot follows a preplanned path going through some specified via points. FIG. 4 shows the 3-D path taken by the mobile robot. The time-histories of the IMU measurements and GPS measurements are depicted in FIGS. 5 and 6, respectively, while the time-history of the confidence on the GPS data is shown in FIG. 7.

The Two-GPS-IMU fusion method was compared with One-GPS-IMU method. Although it was not possible to obtain ground truth attitude and position information during the test, it was possible to obtain an estimate of the attitude without any drift and a fairly reliable estimate of position by processing the data acquired from the three GPS receivers.

FIG. 8 shows that the Kalman Filter can quickly identify the parameters, i.e., gyroscope bias and the direction cosines of the gravity vector in the inertial frame. Trajectories of the vehicle position and attitude based on the Two-GPS-IMU fusion method and One-GPS-IMU method versus the results of the geometric pose estimation process based on the data of the three GPS receivers (used as the reference) are plotted in FIGS. 9 and 10, respectively. The errors between the estimated and the reference pose trajectories are calculated by

Position Error=∥{circumflex over (r)}−r _(ref)∥

Orientation Error=2 sin⁻¹∥vec(q _(ref)

{circumflex over (q)}*)∥

and the results are plotted in FIGS. 11 and 12. It is clearly evident from FIG. 11 that the attitude estimation error using one GPS and IMU accumulates gradually due to gyro drift, whereas the Two GPS-IMU method exhibits no drift. As shown in FIG. 12, the position estimation based on one GPS also exhibits drift, which is the echoed attitude drift. Furthermore, it is apparent from the figure that the position estimation based on one GPS measurement is not accurate at the time around t=400 s, because the error margin of the first GPS receivers during that period is incidentally high, as shown FIG. 6. Both drift and spike in the position errors are substantially reduced in the Two-GPS-IMU estimation method.

The described system can be used for outdoor mobile robots for terrestial applications and to provide a ground-truth pose estimation of a vehicle during testing. The system is also applicable to applications on other worlds, such as the Moon or Mars, where low power pseudolites can be substituted for orbiting satellites. 

1. A method of determining positional information about a vehicle, comprising: computing estimates of the covariance matrices of Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data obtained by at least two GNSS receivers mounted on the vehicle; and fusing the RTK GNSS measurement data according to their corresponding covariance matrices to obtain enhanced positional information.
 2. The method of claim 1, wherein an antenna-to-antenna baseline is defined between the GNSS receivers, and the estimates of the covariance matrices are based on the error in the magnitude of a measurement of the antenna-to-antenna baseline and the confidence in the GNSS receiver measurements.
 3. The method of claim2, wherein the antenna-to-antenna baseline is not collinear with the vector of gravity.
 4. The method of claim 2, wherein the measurement data from the RTK GNSS receivers is fused with measurement data from an inertial measurement unit (IMU).
 5. The method of claim 4, wherein the IMU includes an onboard accelerometer and rate gyro.
 6. The method of claim 4, wherein the IMU includes an onboard inclinometer and rate gyro.
 7. The method of claim 4, wherein the measurement data is fused in a Kalman filter.
 8. The method of claim 7, wherein the positional information comprises attitude information obtained from the Kalman filter.
 9. The method of claim 8, wherein the attitude information is derived from the quaternion ${\hat{q}}_{k} = {\begin{bmatrix} {\delta {\hat{q}}_{v_{k}}} \\ \sqrt{1 - {{\delta {\hat{q}}_{v_{k}}}}^{2}} \end{bmatrix} \otimes \left( {{\left( {{\cos \frac{\theta_{k}}{2}} + {\sin \frac{\theta_{k}}{2}}} \right){\hat{q}}_{k - 1}} + {\left( {{\frac{2}{\theta_{k}}\sin \frac{\theta_{k}}{2}} - {\frac{1}{2}\cos \frac{\theta_{k}}{2}}} \right){{\underset{\_}{\theta}}_{k} \otimes {\hat{q}}_{k - 1}}}} \right)}$   (Note  the  last  θ  in  the  above  equation  should  be  in  bold)
 10. The method of claim 7, wherein the positional information also comprises localization information.
 11. The method of claim 10, wherein the localization information is derived from the equation $\hat{r} = {\left( {L^{T}R_{r}^{- 1}L} \right)^{- 1}L^{T}{R_{r}^{- 1}\begin{bmatrix} {p_{1} - {\hat{A}e_{1}}} \\ {p_{2} - {\hat{A}e_{2}}} \end{bmatrix}}}$ where the weighting matrix is defined as $R_{r} = \begin{bmatrix} {R_{p_{1}} + {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} & {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}} \\ {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}} & {R_{p_{2}} + {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} \end{bmatrix}$
 12. The method of claim 4, wherein the covariance matrix of the GNSS measurement noise is derived from equation $R_{{pi}_{k}} = {\frac{\left( {{{\Delta \; p_{k}}} - {{\Delta \; e}}} \right)^{2}}{\Delta {{\overset{\sim}{p}}_{k}^{T}\left( {C_{1_{k}}^{2} + C_{2_{k}}^{2}} \right)}\Delta {\overset{\sim}{p}}_{k}}{C_{i_{k}}^{2}.}}$
 13. The method of claim 7, wherein the initial states of the Kalman filter are determined from difference between the two GNSS measurements and the accelerometer measurement.
 14. The method of claim 4, further comprising computing an observation vector from measurements obtained from the accelerometer and the GNSS receivers, and applying the observation vector, the estimates of the covariance matrices and measurements obtained from the onboard rate gyro as inputs to a Kalman filter to determine the attitude of the vehicle.
 15. The method of claim 1, wherein at least three GNSS receivers are mounted on the vehicle and a pose estimation is obtained from measurements from the three GNSS receivers.
 16. The method of claim 1, wherein the GNSS receivers compute their ranges with respect to a stationary GNSS base station.
 17. An apparatus for determining positional information about a vehicle, comprising: at least two GNSS receivers for mounting on the vehicle and defining an antenna-to-antenna baseline therebetween; and a processor configured to compute estimates of the covariance matrices of Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data obtained by at least two GNSS receivers mounted on the mobile robot, and to fuse the RTK GNSS measurement data according to their corresponding covariance matrices to obtain enhanced positional information.
 18. The apparatus of claim 17, wherein an antenna-to-antenna baseline is defined between the GNSS receivers, and the estimates of the covariance matrices are based on the error in the magnitude of a measurement of the antenna-to-antenna baseline and the confidence in the GNSS receiver measurements.
 19. The apparatus of claim 18, wherein an antenna-to-antenna baseline is not collinear with the vector of gravity.
 20. The apparatus of claim 17, wherein the processor is configured to fuse measurement data from the RTK GNSS receivers with measurement data from an inertial measurement unit (IMU).
 21. The apparatus of claim 20, wherein the IMU includes an onboard accelerometer and rate gyro.
 22. The apparatus of claim 20, wherein the IMU includes an onboard inclinometer and rate gyro
 23. The apparatus of claim 20, wherein the processor comprises a Kalman filter.
 24. The apparatus of claim 23, wherein the Kalman filter is configured to produce attitude information about the vehicle.
 25. The apparatus of claim 24, wherein the attitude information is derived from the equation ${\hat{q}}_{k} = {\begin{bmatrix} {\delta {\hat{q}}_{v_{k}}} \\ \sqrt{1 - {{\delta {\hat{q}}_{v_{k}}}}^{2}} \end{bmatrix} \otimes \left( {{\left( {{\cos \frac{\theta_{k}}{2}} + {\sin \frac{\theta_{k}}{2}}} \right){\hat{q}}_{k - 1}} + {\left( {{\frac{2}{\theta_{k}}\sin \frac{\theta_{k}}{2}} - {\frac{1}{2}\cos \frac{\theta_{k}}{2}}} \right){{\underset{\_}{\theta}}_{k} \otimes {\hat{q}}_{k - 1}}}} \right)}$
 26. The apparatus of claim 24, wherein the positional information also comprises localization information.
 27. The apparatus of claim 26, wherein localization information is derived from the equation $\hat{r} = {\left( {L^{T}R_{r}^{- 1}L} \right)^{- 1}L^{T}{R_{r}^{- 1}\begin{bmatrix} {p_{1} - {\hat{A}e_{1}}} \\ {p_{2} - {\hat{A}e_{2}}} \end{bmatrix}}}$ where the weighting matrix is defined as $R_{r} = \begin{bmatrix} {R_{p_{1}} + {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} & {4{\overset{\_}{A}\left\lbrack {e_{1} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}} \\ {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{1} \times} \right\rbrack}{\overset{\_}{A}}^{T}} & {R_{p_{2}} + {4{\overset{\_}{A}\left\lbrack {e_{2} \times} \right\rbrack}{P_{q}\left\lbrack {e_{2} \times} \right\rbrack}{\overset{\_}{A}}^{T}}} \end{bmatrix}$
 28. The apparatus of claim 23, wherein the initial states of the Kalman filter is determined from the difference between GPS measurements and the accelerometer measurement.
 29. The apparatus of claim 21, comprising a module for computing an observation vector from measurements obtained from the accelerometer and the GPS receivers, and a Kalman filter receiving as inputs the observation vector, the estimates of the covariance matrices and measurements obtained from the onboard rate gyro and outputting the attitude of the mobile robot.
 30. The apparatus of claim 17, comprising at least three GNSS receivers mounted on the mobile robot, and wherein the processor is configured to obtain a pose estimation from measurements from the two GPS receivers.
 31. The apparatus of claim 17, wherein the GNSS receivers are configured to compute their ranges with respect to a stationary GNSS base station.
 32. An apparatus for determining positional information about a vehicle, comprising: at least two GNSS receivers for mounting on the vehicle and defining an antenna-to-antenna baseline therebetween; an inertial Measurement Unit (IMU) for obtaining data about the movement of the mobile robot; and a processor configured to and to fuse the RTK GNSS measurement data and the data from the IMU to obtain enhanced positional information.
 33. The apparatus of claim 32, wherein the processor is configured to compute estimates of the covariance matrices of Real Time Kinematic (RTK) Global Satellite Navigation System (GNSS) measurement data obtained by at least two GNSS receivers mounted on the vehicle and to fuse the RTK GNSS measurement data according to their corresponding covariance matrices.
 34. The apparatus of claim 32, wherein the vehicle is a mobile robot or a walking robot or a humanoid robot. 